package com.cetool.autocms.controller.sys;

import com.cetool.autocms.annotation.TokenAnnotation;
import com.cetool.autocms.common.PageRequest;
import com.cetool.autocms.enumeration.OperateEnum;
import com.cetool.autocms.pojo.dto.sys.RoleInfoDTO;
import com.cetool.autocms.pojo.request.sys.QueryRoleListRequest;
import com.cetool.autocms.pojo.request.sys.SaveRoleRequest;
import com.cetool.autocms.service.sys.RoleService;
import com.github.pagehelper.PageSerializable;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

/**
 * 系统管理-角色管理
 *
 * @author 戴越
 * @date 2021/11/25
 */
@RestController
@RequestMapping("/role")
@Api(tags = "系统管理-角色管理")
public class RoleController {
    /**
     * 注入角色管理服务
     */
    @Autowired
    private RoleService roleService;

    /**
     * 分页查询角色信息列表
     *
     * @param request 分页查询角色列表请求实体
     * @return 角色信息分页列表
     * @author 戴越
     * @date 2021/11/25
     */
    @TokenAnnotation
    @PostMapping("/listPageRoleInfo")
    @ApiOperation(value = "分页查询角色信息列表")
    public PageSerializable<RoleInfoDTO> listPageRoleInfo(@RequestBody PageRequest<QueryRoleListRequest> request) {
        return roleService.listPageRoleInfo(request);
    }

    /**
     * 新增角色
     *
     * @param request 新增角色请求实体
     * @return 操作信息
     * @author 戴越
     * @date 2021/11/25
     */
    @TokenAnnotation
    @PostMapping("/saveRole")
    @ApiOperation(value = "新增角色")
    public OperateEnum saveRole(@Valid @RequestBody SaveRoleRequest request) {
        return roleService.saveRole(request);
    }
}
